在 Laravel 這類現代化的 PHP Framework 中,Routing 與 Middleware 是構建應用的基礎架構之一。理解這兩者如何協作,不僅能讓你開發出更可維護的系統,也能在專案需求增加時有效擴展功能。
路由的主要工作就是根據請求 URL 找到對應的 Controller 上。
Route::get('/users', [UserController::class, 'index']);
Route::post('/login', function () {
// 執行登入邏輯
});
通常會依照 RESTful API 的設計原則來定義路由對應的動作:
Middleware 是位於 Route 與 Controller 之間,可以作為檢查請求的角色,例如:
* 權限驗證(如:JWT、API Token)
* 跨站請求保護(CSRF)
* 請求格式統一(如統整成 JSON)
php artisan make:middleware CheckAdmin
全域註冊(app/Http/Kernel.php)
protected $routeMiddleware = [
'check.admin' => \App\Http\Middleware\CheckAdmin::class,
];
指定路由使用:
Route::middleware(['auth', 'check.admin'])->group(function () {
Route::get('/admin/dashboard', [DashboardController::class, 'index']);
});
Route::middleware(['auth', 'check.admin'])->prefix('admin')->group(function () {
Route::get('/users', [AdminUserController::class, 'index']);
});